﻿using QuanLyThuVien.Supporter;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace QuanLyThuVien.GUI
{
    public partial class GUIXuLyDuLieu : DevComponents.DotNetBar.Office2007Form
    {
        //----------------------------------------------------------------------
        //Desc: constructor mặc định
        //----------------------------------------------------------------------
        public GUIXuLyDuLieu()
        {
            InitializeComponent();
        }

        //----------------------------------------------------------------------
        //Desc: sự kiện click Thoat
        //----------------------------------------------------------------------
        private void btnThoat_Click(object sender, EventArgs e)
        {
            try
            {
                this.Close();
            }
            catch { }
        }

        //----------------------------------------------------------------------
        //Desc: sự kiện form load
        //----------------------------------------------------------------------
        private void GUIXuLyDuLieu_Load(object sender, EventArgs e)
        {
            if (DatabaseManager.DbConnection != null)
            {
                _txtTenCSDLSaoLuu.Text = DatabaseManager.DbConnection.DatabaseName;
                _txtTenCSDLXoa.Text = DatabaseManager.DbConnection.DatabaseName;
                _txtTenCSDLPhucHoi.Text = DatabaseManager.DbConnection.DatabaseName;
            }
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện chọn button  LoadDuongDanSaoLuu
        //----------------------------------------------------------------------
        private void btnLoadDuongDanThuMuc_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dialog = new FolderBrowserDialog();
            dialog.ShowDialog();
            if (dialog.SelectedPath != "")
                _txtDuongDanThuMuc.Text = dialog.SelectedPath;
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện click ribbon button SaoLuu
        //----------------------------------------------------------------------
        private void btnSaoLuu_Click(object sender, EventArgs e)
        {
            if (DatabaseManager.MasterConnection != null)
            {
                if (_txtTenCSDLSaoLuu.Text == "")
                    MessageBox.Show("Chưa nhập Cơ sở dữ liệu");
                else if (_txtDuongDanThuMuc.Text == "")
                    MessageBox.Show("Chưa chọn đường dẫn lưu");
                else
                {
                    if (DatabaseManager.BackupDatabase(_txtDuongDanThuMuc.Text, _txtTenCSDLSaoLuu.Text))
                        MessageBox.Show("Sao lưu thành công");
                    else
                        MessageBox.Show("Sao lưu thất bại");
                }
            }
            else
                MessageBox.Show("Chưa kết nối Server");
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện chọn button  LoadFileBackup
        //----------------------------------------------------------------------
        private void btnLoadFileBackup_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "Backup files *.bak|*.bak"; ;
            dialog.ShowDialog();
            if (dialog.FileName != "")
                _txtFileBackup.Text = dialog.FileName;
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện chọn button PhucHoi
        //----------------------------------------------------------------------
        private void btnPhucHoi_Click(object sender, EventArgs e)
        {
            if (_txtFileBackup.Text == "" || _txtTenCSDLPhucHoi.Text == "")
            {
                MessageBox.Show("Chưa nhập tên cơ sở dữ liệu hoặc đường dẫn");
                return;
            }

            if (DatabaseManager.MasterConnection == null)
            {
                MessageBox.Show("Chưa kết nối server");
                return;
            }

            if (DatabaseManager.RestoreDatabase(_txtFileBackup.Text, _txtTenCSDLPhucHoi.Text))
            {
                MessageBox.Show("Phục hồi dữ liệu thành công");
                if (_txtTenCSDLSaoLuu.Text != _txtTenCSDLPhucHoi.Text)
                    _txtTenCSDLSaoLuu.Text = _txtTenCSDLPhucHoi.Text;
                if (_txtTenCSDLXoa.Text != _txtTenCSDLPhucHoi.Text)
                    _txtTenCSDLXoa.Text = _txtTenCSDLPhucHoi.Text;
            }
            else
                MessageBox.Show("Phục hồi dữ liệu thất bại.");
        }

        //----------------------------------------------------------------------
        //Desc: xử lý sự kiện chọn button XoaDuLieu
        //----------------------------------------------------------------------
        private void btnXoaCSDL_Click(object sender, EventArgs e)
        {
            if (_txtTenCSDLXoa.Text == "")
            {
                MessageBox.Show("Chưa nhập tên cơ sở dữ liệu");
                return;
            }

            if (DatabaseManager.MasterConnection == null)
            {
                MessageBox.Show("Chưa kết nối server");
                return;
            }

            DialogResult result = MessageBox.Show("Nếu tiếp tục tất cả dữ liệu sẽ bị xóa vĩnh viễn!!!", "CẢNH BÁO", MessageBoxButtons.OKCancel);
            if (result == System.Windows.Forms.DialogResult.OK)
            {
                if (DatabaseManager.DeleteDatabase(_txtTenCSDLXoa.Text))
                {
                    DatabaseManager.DbConnection = null;
                    MessageBox.Show("Xóa thành công");
                    if (_txtTenCSDLSaoLuu.Text == _txtTenCSDLXoa.Text)
                        _txtTenCSDLSaoLuu.Text = "";
                    if (_txtTenCSDLXoa.Text == _txtTenCSDLXoa.Text)
                        _txtTenCSDLXoa.Text = "";
                }
                else
                    MessageBox.Show("Xóa thất bại");
            }
        }
    }
}
